package com.sdzee.forms;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import com.sdzee.beans.Evenement;
import com.sdzee.dao.DAOException;
import com.sdzee.dao.EvenementDAO;

public final class EvenementForm {
    private static final String CHAMP_TITRE      = "Titre";
    private static final String CHAMP_DESC       = "Descritption";
    private static final String CHAMP_ADR       = "Adresse";
    private static final String CHAMP_CAT        = "Categorie";

    
    private String              resultat;
    private Date dateEvt = null;
    private Map<String, String> erreurs          = new HashMap<String, String>();
    private EvenementDAO      EvenementDao;

    public EvenementForm( EvenementDAO EvenementDao ) {
        this.EvenementDao = EvenementDao;
    }

    public Map<String, String> getErreurs() {
        return erreurs;
    }

    public String getResultat() {
        return resultat;
    }

    public Evenement creerEvenement( HttpServletRequest request ) {
        String titre = getValeurChamp( request, CHAMP_TITRE );
        String description = getValeurChamp( request, CHAMP_DESC );
        String adresse = getValeurChamp( request, CHAMP_ADR );
        String categorie = getValeurChamp( request, CHAMP_CAT );
        //dateEvt.getCurrentDate();
        Evenement evenement = new Evenement();
        try {
            
        		evenement.setTitre(titre);
        		evenement.setDescription(description);
        		evenement.setAdresse(adresse);
        		evenement.setCategorie(categorie);
        		evenement.setIdUser(2);
        		
                EvenementDao.creerEvt( evenement );
                resultat = "Evenement correctement cree.";
           
            
        } catch ( DAOException e ) {
            resultat = "Échec de l'inscription : une erreur imprévue est survenue, merci de réessayer dans quelques instants.";
            e.printStackTrace();
        }

        return evenement;
    }

  
    private void setErreur( String champ, String message ) {
        erreurs.put( champ, message );
    }

    /*
     * Méthode utilitaire qui retourne null si un champ est vide, et son contenu
     * sinon.
     */
    private static String getValeurChamp( HttpServletRequest request, String nomChamp ) {
        String valeur = request.getParameter( nomChamp );
        if ( valeur == null || valeur.trim().length() == 0 ) {
            return null;
        } else {
            return valeur;
        }
    }
    
}